[Beaver91]Efficient Multiplarty Protools Using Circuit Randomization
difference between theory and practice: efficiency
In practice:
- express F as a circuit CF
- call on each player to secretly share
- proceed to perform " secret addition and multiplication" on secretly shared values
- cost: depth of times cost of secret multiplication
1 Introduction
Secrete Sharing:
Advantage of using polynomials
easy to combine two secrets multiplication by a publicly known constant
But when secrets are multiplied: it's hard
fan-in: [Electronics]the number of inputs that can be connected to the circuit.
Notions:
Our Solution:
dose evaluate the circuit level by level, but each level is simply a reconstruction of secrets
The Idea
completely randomize every input and output to each gate in plus a very simple error-correction procedure
error-correcting procedure
One-time tables
Analogous to one-time pad
One-time table: a set of precomputed values that support direct secure computation without broadcast or private channels
2 An Efficient Protocol for Circuit Evaluation
UnifSecret
UnifSecret:
generate uniformly random secrets by adding uniformly random secrets shared by each party.
Calculate Circuit:
Circuit:
- N wires carry inputs
- gates :
- level(): depth of the gate
evaluate: 把电路的gates按照depth分层,一层一层的计算,每次计算出该层的输出(new secrets),就是下一层的输入。
Share-Compute-Reveal Paradigm:
- evaluate gates at each level
- thereby produce new secrets , until the final secret is calculated
- use REC reconstruct the result
Additive Gate
An additive gate:
- create N uniformly random values for every 用UnifySecret的方式,every party generate a random secret,其和就是分配给每个wire的random values。 (这里不考虑secret sharing,只考虑value calculation)
- for every gate : compute every party可以直接对random value (pieces)计算,这里是加法门,所以。不过each party得到的其实是PIECE()。
- consider corrections to each wire 对于一层gates而言,input wire的corrections (pieces)可以locally calculate。而当要计算output wire的corrections时,就需要REC input wire的correction,所有parties的pieces 加起来,得到。
- compute the correction : output wire of
- praty know(pieces):
- random inputs and their results
- random output
- input wire corrections
- party calculate output wire correction:
- is a linear combination of "known" constant and with the values and 刚刚也说过,在计算这一层gates前,需要reconstruct input wire的correction,所以计算时, and 是已经经过REC操作,every party都把他的pieces分享处理(但不会reveal info),得到 constant and 。
- praty know(pieces):
Multiplicative Gate:
Multiplicative gates:
- a linear combination:
Security:
Cost of REC:
Figure 2: the whole protocol
2.1 An Optimization
Compress additive gates:
by computing the corrections to outputs at the same time as the corrections to input wires no "randomization" of additive gates
Example:
把先做乘法,在做什么加法两层运算,压缩为一层运算。
Add gate output correction和其input没有关系,包括,反而是和前一层的MUL gates的input有关系。
Deduce: